<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>14、Promise对象——Promise.race()</title>
	</head>
	<body>
		<script type="text/javascript">
			//六、Promise.race()
			//Promise.race方法同样是将多个 Promise 实例，包装成一个新的 Promise 实例。
//			const p = Promise.race([p1,p2,p3])
			//上面代码中，只要p1、p2、p3之中有一个实例率先改变状态，p的状态就跟着改变。那个率先改变的 Promise 实例的返回值，就传递给p的回调函数。
			//Promise.race方法的参数与Promise.all方法一样，如果不是 Promise 实例，就会先调用下面讲到的Promise.resolve方法，将参数转为 Promise 实例，再进一步处理。
			//下面是一个例子，如果指定时间内没有获得结果，就将 Promise 的状态变为reject，否则变为resolve。
			const p = Promise.race([
				fetch('/resource-that-may-take-a-while'),
				new Promise(function(resolve,reject){
					setTimeout(() => reject(new Error('request timeout')),5000)
				})
			]);
			p.then(response => console.log(response));
			p.catch(error => console.log(error))
			//上面代码中，如果 5 秒之内fetch方法无法返回结果，变量p的状态就会变为rejected，从而触发catch方法指定的回调函数。
			
		</script>
	</body>
</html>
